home *** CD-ROM | disk | FTP | other *** search
Wrap
(*************************************************** Ant Movie Catalog importation script www.antp.be/software/moviecatalog/ [Infos] Authors=Zoltan Karpati (<link>pinyo@gibzone.hu</link>) Title=NetPiac.hu Description=NetPiac.hu (HUN) import Site=http://www.netpiac.hu Language=HU Version=1.0 Requires=3.5.0 Comments= License=This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. | GetInfo=1 [Options] ***************************************************) program netpiac; var MovieName: string; function RemoveHTML(Szoveg: string): String; begin HTMLRemovetags(Szoveg); HTMLDecode(Szoveg); Szoveg := StringReplace(Szoveg, '%20', ' '); Szoveg := StringReplace(Szoveg, '<i>', ''); Szoveg := StringReplace(Szoveg, '</i>', ''); Szoveg := StringReplace(Szoveg, '<b>', ''); Szoveg := StringReplace(Szoveg, '</b>', ''); Szoveg := StringReplace(Szoveg, '</p>', ''); Szoveg := StringReplace(Szoveg, ' ', ' '); Szoveg := StringReplace(Szoveg, ' ', ' '); result := Trim(Szoveg); end; function AddHTML(Szoveg: string): String; begin Szoveg := StringReplace(Szoveg, ' ','%20'); result := Szoveg; end; function FindLine(Pattern: string; List: TStringList; StartAt: Integer): Integer; var i: Integer; begin result := -1; if StartAt < 0 then StartAt := 0; for i := StartAt to List.Count-1 do if Pos(Pattern, List.GetString(i)) <> 0 then begin result := i; Break; end; end; procedure AnalyzePage(Address: string); var Page: TStringList; LineNr: Integer; begin Page := TStringList.Create; Page.Text := GetPage(Address); if pos('<!--tΘtel eleje-->', Page.Text) = 0 then begin AnalyzeMoviePage(Page) end else begin PickTreeClear; LineNr := 0; LineNr := FindLine('<!--tΘtel eleje-->', Page, LineNr); if LineNr > -1 then begin PickTreeAdd('DVD filmek:', ''); AddMoviesTitles(Page, LineNr); end; if PickTreeExec(Address) then AnalyzePage(Address); end; Page.Free; end; procedure AnalyzeMoviePage(Page: TStringList); var Line, Value, Value2, FullValue: string; LineNr: Integer; Adder: Integer; Rate: Integer; BeginPos, EndPos: Integer; begin // fieldURL LineNr := FindLine('<!--SHOP MODUL ELEJE', Page, 0); if LineNr > -1 then begin Line := Page.GetString(LineNr+4); BeginPos := pos('termek_id', Line)+18; EndPos := pos('">', Line); Value := copy(Line, BeginPos, EndPos - BeginPos); SetField(fieldURL, 'http://www.netpiac.hu/display/index.phtml?do=termek&termek_id=' + Value); end; // fieldSource SetField(fieldSource,'NetPiac.hu'); // fieldMediaType SetField(fieldMediaType, 'DVD'); // fieldTranslatedTitle fieldOriginalTitle fieldCategory fieldYear fieldCountry LineNr := FindLine('<!--kΘpkontΘner vΘge', Page, 0); if LineNr > -1 then begin LineNr := FindLine('ib2">', Page, LineNr); Line := Page.GetString(LineNr); BeginPos := pos('ib2">', Line)+5; EndPos := pos('</span>', Line); Value := copy(Line, BeginPos, EndPos - BeginPos); SetField(fieldTranslatedTitle,RemoveHTML(Value)); Delete(Line,1,EndPos); BeginPos := pos('ib3">', Line)+5; EndPos := pos('<br>', Line); Value := copy(Line, BeginPos, EndPos - BeginPos); SetField(fieldOriginalTitle,RemoveHTML(Value)); Delete(Line,1,EndPos+3); EndPos := pos('</span>', Line); FullValue := copy(Line, 1, EndPos-1); EndPos := pos(',',FullValue); Value := copy(FullValue, 1, EndPos-1); SetField(fieldCategory, RemoveHTML(Value)); Delete(FullValue,1,EndPos+1); EndPos := pos('-',FullValue); Value := copy(FullValue, 1, EndPos-1); SetField(fieldYear,RemoveHTML(Value)); Delete(FullValue,1,EndPos+1); EndPos := pos('film',FullValue); Value := copy(FullValue, 1, EndPos-1); SetField(fieldCountry,RemoveHTML(Value)); end; // fieldDirector LineNr := FindLine('Rendezte:', Page, 0); if LineNr > -1 then begin Line := Page.GetString(LineNr); BeginPos := pos('class="ib2">', Line) + 12; EndPos := pos('</span></a>', Line)-1; Value := copy(Line, BeginPos, EndPos - BeginPos); SetField(fieldDirector, RemoveHTML(Value)); end; // fieldActors LineNr := FindLine('F⌡szerepben: ', Page, 0); if LineNr > -1 then begin Line := Page.GetString(LineNr); BeginPos := pos('F⌡szerepben: ', Line) + 12; Delete(Line,1, BeginPos); FullValue := Line; repeat LineNr := LineNr + 1; Line := Page.GetString(LineNr); FullValue := FullValue + Line; until Line = '<br><br>'; SetField(fieldActors, RemoveHTML(FullValue)); end; // fieldProducer - studi≤ LineNr := FindLine('St·di≤/Forgalmaz≤:', Page, 0); if LineNr > -1 then begin Line := Page.GetString(LineNr); BeginPos := pos('St·di≤/Forgalmaz≤:', Line); Delete(Line,1,BeginPos); BeginPos := pos('top">', Line)+5; EndPos := pos('</td></tr>', Line); Value := copy(Line, BeginPos, EndPos - BeginPos); SetField(fieldProducer,RemoveHTML(Value)); end; // fieldLanguages LineNr := FindLine('>Hang: <', Page, 0); if LineNr > -1 then begin Line := Page.GetString(LineNr); BeginPos := pos('>Hang: <', Line); Delete(Line,1,BeginPos); BeginPos := pos('top">', Line)+5; EndPos := pos('</td></tr>', Line); Value := copy(Line, BeginPos, EndPos - BeginPos); SetField(fieldLanguages,RemoveHTML(Value)); end; // fieldComments Kepformatum LineNr := FindLine('KΘp : ', Page, 0); FullValue := ''; if LineNr > -1 then begin repeat LineNr := LineNr + 1; Line := Page.GetString(LineNr); BeginPos := pos('<td class="txt">', Line); if BeginPos > 0 then begin Delete(Line,1,BeginPos+16); FullValue := FullValue + RemoveHTML(Line); end; until (pos('</tr>', Line) > 0); SetField(fieldComments,RemoveHTML(FullValue)); end; // fieldSubtitles Kepformatum LineNr := FindLine('Felirat nyelv:', Page, 0); if LineNr > -1 then begin Line := Page.GetString(LineNr); BeginPos := pos('Felirat nyelv:', Line); Delete(Line,1,BeginPos+13); EndPos := pos('</td></tr>', Line); Value := copy(Line, 1, EndPos); SetField(fieldSubtitles,RemoveHTML(Value)); end; // fieldLength LineNr := FindLine('Hossza:', Page, 0); if LineNr > -1 then begin Line := Page.GetString(LineNr+1); BeginPos := pos('"txt">', Line)+6; EndPos := pos(' perc', Line); Value := copy(Line, BeginPos, EndPos-BeginPos); SetField(fieldLength,RemoveHTML(Value)); end; // Picture LineNr := FindLine('/display/pop.phtml?pic', Page, 0); if LineNr > -1 then begin Line := Page.GetString(LineNr); BeginPos := pos('<img src="', Line)+9; Delete(Line, 1, BeginPos); EndPos := pos('" h', Line); Value := copy(Line, 1, EndPos - 1); GetPicture('http://www.netpiac.hu' + Value); end; // fieldDescription LineNr := FindLine('<!--SHOP MODUL V╔GE', Page, 0); if LineNr > -1 then begin Line := Page.GetString(LineNr + 1); SetField(fieldDescription, RemoveHTML(Line)); end; //DisplayResults; end; procedure AddMoviesTitles(Page: TStringList; var LineNr: Integer); var Line: string; MovieTitle, MovieAddress: string; StartPos: Integer; EndPos: Integer; begin LineNr := 0; repeat LineNr := FindLine('<!--tΘtel eleje-->', Page, LineNr); LineNr := LineNr + 1 ; Line := Page.GetString(LineNr); StartPos := pos('a href="', Line); if StartPos > 0 then begin EndPos := pos('"><img', Line); MovieAddress := copy(Line, StartPos + 8, EndPos-StartPos-8); StartPos := pos('"navu">', Line); Delete(Line, 1, StartPos+6); EndPos := pos('</a></td>', Line); MovieTitle := copy(Line, 1, EndPos-1); PickTreeAdd(MovieTitle, 'http://www.netpiac.hu' + MovieAddress); end; until LineNr = 0; end; begin if CheckVersion(3,5,0) then begin MovieName := GetField(fieldOriginalTitle); if MovieName = '' then MovieName := GetField(fieldTranslatedTitle); if Input('Importßlßs a NetPiac.hu-r≤l', 'A film cφme:', MovieName) then begin AnalyzePage('http://www.netpiac.hu/display/index.phtml?limit=40&style=1&do=talalatok&do2=gyors&ujkereses=1&hol=3&szoveg='+AddHTML(MovieName)); end; end else ShowMessage('This script requires a newer version of Ant Movie Catalog (at least the version 3.5.0)'); end.